/*
 *  agregar_comentario_request.h
 *  Wilson
 *
 *  Created by Sebastian Orfino on 12/1/11.
 *  Copyright 2011 lbs3. All rights reserved.
 *
 */

#ifndef __NUEVOCOMENTARIO__
#define __NUEVOCOMENTARIO__

//stl includes
#include <string>
//#include <boost/archive/xml_iarchive.hpp>

//project includes
#include "WilID.h"
#include "handler_functor.h"
#include "csxs_facade.h"


namespace eventos {
	
	/** Cuando se quiere agregar un comentario a una nota.
	 <payload mensaje={} >
		<id> </id> <!-- id de la nota donde agregar el comentario -->
		<creador> </creador>
		<timestamp> </timestamp>
		<texto> </texto>
	 </payload>
	 */
	class agregar_comentario_request : public evento_csxs_base, public wilson::handler_functor {
		
		std::string id_nota_;
		std::string timestamp_;
		std::string uname_;
		std::string texto_;
		
	protected:
		
		
		//	inline const std::string& mini() const { return mini_;}
		
	public:
		
		virtual const char * ID() const { return kEventoNuevoComentario; }
		
		std::string payload() const;
		
		csxs::event::EventScope scope() const { return csxs::event::kEventScope_Application; }
		
		agregar_comentario_request();
		virtual ~agregar_comentario_request() { }
		
		//getters
		//la forma de usar esto es this.timestamp() = "20110305T1221", etc.
		inline std::string& timestamp() { return timestamp_; }
		inline std::string& id_nota() { return id_nota_; }
		inline std::string& creador() { return uname_; }
		inline std::string& texto() { return texto_; }
		
		
		virtual void operator()(const csxs::event::Event * const eventParam); 
	};
}



#endif //__NUEVOCOMENTARIO__